Method for Efficiently Retrieving Topology-Specific Data for Point-to-Point Networks

ABSTRACT

Network topology codes are computed and used as keys to retrieve topology-specific information for isomorphic networks.

This application is a Continuation of U.S. application Ser. No.13/783,190 filed Mar. 1, 2013, which is a Continuation of U.S.application Ser. No. 12/365,838 filed Feb. 4, 2009, now U.S. Pat. No.8,411,591 which is a Continuation of U.S. application Ser. No.11/258,782 filed Oct. 26, 2005, now U.S. Pat. No. 7,492,716, which ishereby incorporated by reference in its entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to providing topology-specificinformation, and more particularly to identifying and using topologycodes to store and retrieve pre-computed topology-specific informationfor a point-to-point network.

2. Discussion of Prior Art

Operation of certain networks requires routing tables. Conventionally,routing tables have been recalculated whenever a network topology waschanged. If the number of nodes in the network is very small, then theoptimal routing matrix could be computed directly by analyzing everypossible routing matrix, eliminating those that are invalid or thatwould allow deadlocks to occur, and choosing the one with the beststatistics (such as minimum hop count or shortest longest path). Optimalmessage routing matrices for even relatively small point-to-pointnetworks may take hours or more to compute using modern computingequipment.

However, if the number of nodes in a simple graph topology exceedstypically 6 nodes, an exhaustive search would become prohibitivelytime-consuming. A typical 8-node configuration would require analysis ofalmost 2 quadrillion matrices. This makes on-demand calculation ofrouting matrices infeasible in environments where users may change atopology and request a routing matrix for the new topology at will. Oneapproach to solving this problem is to artificially restrict the user topick a network topology from a small set of several allowed topologies,for which the routing tables are already known/computed. Anotherapproach would be to use faster heuristic rules to compute the routingtables upon request. This might reduce the time required to compute thesolution, but such heuristic rules might apply only to a small set ofsimple topologies, and would not guarantee an optimal solution.

It remains therefore difficult and prohibitively time-consuming tocalculate some topology-specific information and hence there is a needfor a method of more promptly providing topology-specific informationfor large point-to-point networks.

SUMMARY OF THE INVENTION

The present invention provides a method, given a graph describing theconnections between communicating entities, to quickly calculate atopology code that can be used as a key to efficiently look uppre-computed message routing matrices or other topology-specificinformation. The invention also provides a method for determiningwhether two given graphs are isomorphic.

The invention computes a topology code for a point-to-point network byordering the nodes of the graph representing the network in such a waythat an adjacency matrix representation of the graph, when encoded intoa topology code, yields a maximum value.

Among the advantages of the invention is that it provides a means toquickly retrieve any sort of pre-computed topology-specific information,thereby circumventing the run-time cost that would be incurred were theinformation computed on demand.

These and other advantages of the invention will become apparent tothose skilled in the art upon reading the following detailed descriptionof the preferred embodiment as shown in the several figures of thedrawing.

BRIEF DESCRIPTION OF THE DRAWING

FIGS. 1 a and 1 b show graphs of two point-to-point networks which areapparently dissimilar yet are isomorphic to each other;

FIG. 2 shows an example point-to-point network;

FIG. 3 lists all possible orderings of nodes in BFS traversals of theFIG. 2 network;

FIGS. 4 a and 4 b graphically represent trees of the two BFS traversalslisted in FIG. 3 column 4 row 7 and row 3, respectively;

FIG. 5 t is a tree graphic representation of the BFS traversal ofconnected nodes “a|ceb|d|f” listed in FIG. 3 column 1 row 6;

FIG. 5 m is an adjacency matrix for the network of FIG. 2, using thenode ordering specified by the BFS tree traversal of FIG. 5 t;

FIG. 6 t is a tree graphic representation of the BFS traversal ofconnected nodes “e|cfa|d|b” listed in FIG. 3 column 5 row 4;

FIG. 6 m is an adjacency matrix for the network of FIG. 2, using thenode ordering specified by the BFS tree traversal of FIG. 6 t; and

FIG. 7 shows schemes to derive a topology code from an adjacency matrix.

DETAILED DESCRIPTION OF THE INVENTION

The present invention enables promptly providing topology-specificinformation for large point-to-point networks. It is assumed that suchinformation has been pre-computed and stored in association with atopology code in such a way as to allow the information to be retrievedby supplying an identical topology code as a key (e.g., in an STL map ora hash table). For each selected network and each newly encounterednetwork the invention calculates a topology code that uniquelyidentifies the topology of that network. If two graphs have identicaltopology codes, then they have the same topology and are isomorphic. Forinstance, although not readily apparent from the drawings, the FIG. 1 aand FIG. 1 b graphs have the same topology. The FIGS. 1 a and 1 b graphscan be reconciled by swapping label pairs (4,5) and (6,7) and redrawingeither graph. Since the graphs have the same topology, they areisomorphic and have the same topology code.

Topology codes computed for newly encountered networks are used as keysto look up and retrieve stored topology-specific information. Examplesof topology-specific information are performance statistics and otherdata that might be prohibitive to calculate on demand or that accumulateover time. In general, topology codes can be used as keys to look up anysort of stored topology-specific data.

An important example of topology-specific information is an optimalrouting matrix describing how to most efficiently route messages betweentwo nodes in a point-to-point network. Because all networks having thesame topology implicitly have identical optimal routing matrices exceptfor possible node labeling differences, the optimal routing matrix for aselected topology can be pre-computed and cached. The invention enablesproviding routing matrices for topologies of 8 nodes and more whichrequire hours or longer to complete, by pre-computing the matrices,storing them in association with their topology codes, and looking themup based on runtime-computed topology codes. Then, if a network'stopology is changed (say, by adding another node), its topology code canbe quickly recalculated and used as a key to look up the cached optimalrouting matrix for the new topology (assuming an optimal routing matrixfor the new topology has been pre-computed and stored in the cache).

The invention first applies a node ordering algorithm to the graphrepresenting the network. Any algorithm may be employed that visits eachnode exactly once, and that is guaranteed to produce the same set oforderings for isomorphic graphs. Because the computed topology code isaffected by the choice of node ordering algorithm, the algorithmemployed when computing a topology code key used to look up storedtopology-specific data must be the same algorithm that was employed togenerate the topology code key associated with the stored data. Theexamples in the remainder of this document use a breadth first search(BFS) algorithm with the additional step of considering all possibleorderings of child nodes. Typically in BFS traversals, one is interestedin visiting all nodes and visiting parent nodes before child nodes, butis not interested in the order in which the child nodes are visited. Incontrast, the present invention is interested in the order of child nodevisits because this can affect the topology code value. The chosen nodeordering algorithm considers all possible BFS traversal orderings. TheFIG. 2 graph represents a 6-node network for which a topology code willbe computed. The chosen node ordering algorithm yields the BFStraversals of trees listed in the FIG. 3 table. In each traversal, theroot node appears first and groups of nodes having the same parent nodeare separated by ‘|’. FIGS. 4 a and 4 b show two BFS trees having theirroot at node “d” and traversing the FIG. 2 network as in FIG. 3 column 4row 7 and row 3 respectively. FIG. 5 t is the BFS tree for the FIG. 3column 1 row 6 traversal, and FIG. 6 t is the BFS tree for the FIG. 3column 5 row 4 traversal.

A topology code is computed from a node ordering by first using thegiven ordering to construct an adjacency matrix representation of thegraph. The elements of the adjacency matrix have a value of 1 if thevertices indicated by the intersecting column and row are directlyconnected neighbors in the graph representing the network, or 0otherwise. Because the values of the elements of an adjacency matrix forsimple undirected graphs are mirrored about the matrix's diagonal, morethan half the elements are redundant and can be ignored. The remainingelements are mapped to bits in the topology code. FIG. 7 shows four waysto map adjacency matrix elements to topology code bits. As can be seenfrom FIG. 7, methods 1 and 2 are equivalent, as are methods 3 and 4. Tofacilitate early determination that a candidate topology code's value isless than the value of the current maximum candidate topology code andcan therefore be discarded, the bits in the candidate topology codes arefilled in from most significant bit to least significant bit. This isindicated by the direction of the arrows in FIG. 7. Because the computedtopology code is affected by the choice of bit ordering scheme, thescheme employed when computing a topology code key used to look upstored topology-specific data must be the same scheme that was employedto generate the topology code key associated with the stored data. Thefollowing examples use the row-major topology code bit ordering schemeconsidering the lower-left adjacency matrix values (method 3 in FIG. 7).Using this scheme, the FIG. 5 t node ordering gives the adjacency matrixshown in FIG. 5 m and the FIG. 6 t node ordering gives the adjacencymatrix shown in FIG. 6 m.

The candidate topology code associated with FIG. 5 m is (“b” for binary)0b′111 1000 1010 0111 (or in hexadecimal 0x78A7). The candidate topologycode associated with FIG. 6 m is 0b′110 1100 1100 0111 (or inhexadecimal 0x6CC7). The candidate topology code with the maximum binarynumerical value is taken to be the topology code representing the graph,and the node ordering used represents a canonical labeling for thegraph.

In a process of evaluating traversals from FIG. 3 starting down column1, the row 6 traversal, as represented in the FIG. 5 t tree, gives thenode ordering for the FIG. 5 m matrix to produce a new candidate maximumvalue topology code of b′111 1000 1010 0111, or in hexadecimal 0x78A7,which will at least temporarily be considered the topology code for theFIG. 2 network.

After finding the FIG. 5 m candidate maximum value topology code,continuing the search will ultimately find 11 other BFS trees yieldingthe same maximum topology code, but none higher. In the simple examplenetwork of FIG. 2, every node being connected to exactly three othersreduces the test for producing the maximum code to: a traversal in whichthe first and second nodes connected to the root are also connected toeach other. Each node has two such tree traversals, for a total of 12out of the 48 possible traversals from FIG. 3. The FIG. 4 a traversal isamong those yielding the maximum code.

The topology code for both the FIGS. 1 a and 1 b graphs is 0x0D19448Dusing the chosen node ordering algorithm and bit mapping scheme.

A preferred embodiment of the invention combines these steps forefficiency. For example, adjacency matrices can be filled in as the nodeorderings are generated, and the maximum candidate topology codecomputed so far can be remembered. If the matrix that produced thecurrent maximum candidate topology code has a connection between a pairof vertices but the node ordering currently being used to fill in acandidate matrix has no connection between that pair of vertices, then,since the adjacency matrix is filled in order of bits from mostsignificant to least significant, it immediately becomes evident thatthe currently-filling matrix can only produce a non-maximal topologycode. For example, once the FIG. 5 m current maximum code has beencalculated, then upon processing the FIG. 6 m matrix to the third bit,row f column c where FIG. 5 m has a 1 value, FIG. 6 m having a 0 valuedooms it to produce a less-than-maximum value. If this situation wereencountered, computation with the node ordering currently filling thedoomed matrix would better be abandoned and the algorithm should move onto the next node ordering. This eliminates a large number ofcalculations and vastly improves efficiency.

A topology code constructed in this manner contains all informationnecessary to reconstruct a graph that is isomorphic to all other graphshaving the same topology code. The most significant bit of the topologycode will always have a value of 1. The redundancy in an adjacencymatrix representation of a graph indicates that the number of nodes N inthe graph is related to the number of significant bits B in the topologycode by the following formula: B=N(N−1)/2. Once the number of nodes Nare known, an N×N adjacency matrix can be populated directly with thebit values of the topology code according to the bit mapping scheme usedto create the topology code. A graph can then be drawn from inspectionof the adjacency matrix.

If stored topology-specific data is dependent on node ordering, then itsnode ordering should be stored and retrieved along with the data itself.For example, a routing table for a specific network would containreferences to nodes within the network. When a topology code is computedfor a new network that is isomorphic to the stored network, the newnetwork's node labeling may be different from the stored network. Havingaccess to the stored network's node ordering allows the stored routingtable's node references to be mapped to the node labeling of the newnetwork.

The invention can be used to retrieve any sort of topology-specificinformation given any network whose topology can be described by asimple graph. While the preferred embodiment is directed specifically tosimple graphs (having at most a single edge connecting any twovertices), the ideas apply equally well to graphs where there may bemultiple edges (or equivalently, single edges with weight values)connecting vertices. The difference would be that the adjacency matriceswould contain values other than just 0 or 1, and these numbers would mapto more than one bit in the topology code.

While the present invention is described in terms of a preferredembodiment, it will be appreciated by those skilled in the art that thisembodiment may be modified without departing from the essence of theinvention. It is therefore intended that the following claims beinterpreted as covering any modifications falling within the true spiritand scope of the invention.

I claim:
 1. A method of providing topology-specific data for apoint-to-point network, comprising: storing a collection oftopology-specific data for a plurality of point-to-point networks incomputer memory; calculating for one or more of the point-to-pointnetworks a topology code that identifies the topology of that one ormore point-to-point networks wherein the topology code is calculatedusing a node-ordering algorithm applied to a model representing that oneor more point-to-point networks; and using the calculated topology codeas a key to provide associated topology-specific data from thecollection of topology-specific data.
 2. The method of claim 1, furthercomprising calculating a new topology code in response to a change inthe one or more point-to-point networks and using the new topology codeas a key to look up one or more new adjacency matrices for the newchanged topology.
 3. The method of claim 1, further comprising ignoringredundant elements in the model while the node-ordering algorithm isapplied to the model.
 4. The method of claim 1, further comprisingfilling in bits in the topology code using a bit ordering scheme whilecalculating the topology code.
 5. The method of claim 1, wherein thetopology code is computed by evaluating different traversals through theone or more point-to-point networks and storing node orders with thetopology codes.
 6. The method of claim 1, further comprisingreconstructing the model from the topology code.
 7. A computer readablemedium comprising program instructions to determine the optimal routingmatrix for a selected topology of one or more point-to-point networks,comprising: pre-computing one or more adjacency matrices representinggraph topologies; storing the one or more adjacency matrices inassociation with one or more topology codes; and looking up the one ormore adjacency matrices based on runtime-computed topology codes.
 8. Thecomputer readable medium of claim 7, further comprising calculating anew topology code in response to a change in the one or morepoint-to-point networks and using the new topology code as a key to lookup one or more new adjacency matrices for the new changed topology. 9.The computer readable medium of claim 7, further comprising ignoringredundant elements in the adjacency matrix and using the adjacencymatrix as an optimal routing matrix.
 10. The computer readable medium ofclaim 7, further comprising filling in bits in the topology code using abit ordering scheme.
 11. The computer readable medium of claim 7,wherein the topology codes are computed by evaluating differenttraversals through the one or more point-to-point networks and storingnode orders with the topology codes.
 12. The computer readable medium ofclaim 7, further comprising reconstructing a graph topology with thetopology code.
 13. The computer readable medium of claim 7, furthercomprising retrieving topology specific information from the graphtopology that represents one of the point-to-point networks.